<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS 设计原理</title>
</head>

<body>
    <h1>JS 设计原理</h1>
    <ul>
        <li>
            <b>JS 引擎</b>
            <p>目前比较流行的是 V8 引擎，主要的作用就是把 JS 代码将其逐行解释和编译成可被计算机硬件执行的代码；</p>
            <p>分为三个阶段：解析、编译、执行</p>
            <ol>
                <li>在解析阶段，引擎会将 JavaScript 代码转换成一种抽象语法树（Abstract Syntax Tree，AST）</li>
                <li>在编译阶段，引擎会将 AST 转化为字节码，执行时再将字节码解释执行或者编译为机器码后再执行</li>
            </ol>
        </li>
        <li>
            <b>运行上下文</b>
            <p>浏览器的 API: window、DOM 提高调用</p>
        </li>
        <li>
            <b>调用栈</b>
        </li>
        <li>
            <b>事件循环</b>
            <p></p>
        </li>
        <li>
            <b>回调</b>
            <p></p>
        </li>
    </ul>
    <script></script>
</body>

</html>